/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.lm.entity;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Robson Motta
 */
@Entity
@Table(name = "ctrl_usuario")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "CtrlUsuario.findAll", query = "SELECT c FROM CtrlUsuario c"),
    @NamedQuery(name = "CtrlUsuario.findByCodUsuario", query = "SELECT c FROM CtrlUsuario c WHERE c.codUsuario = :codUsuario")})
public class CtrlUsuario implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 30)
    @Column(name = "cod_usuario")
    private String codUsuario;
    @Size(max = 150)
    @Column(name = "nom_usuario")
    private String nomUsuario;
    @Size(max = 150)
    @Column(name = "dsc_email")
    private String dscEmail;
    @Size(max = 14)
    @Column(name = "tel_fixo_usuario")
    private String telFixoUsuario;
    @Size(max = 14)
    @Column(name = "tel_mov_usuario")
    private String telMovUsuario;
    @Size(max = 20)
    @Column(name = "cpf_ou_cnpj")
    private String cpfOuCnpj;
    @Size(max = 200)
    @Column(name = "dsc_pergunta")
    private String dscPergunta;
    @Size(max = 100)
    @Column(name = "dsc_resposta")
    private String dscResposta;
    @Size(max = 100)
    @Column(name = "dsc_thema")
    private String dscThema;
    @Size(max = 200)
    @Column(name = "psw_usuario")
    private String pswUsuario;
    @Size(max = 100)
    @Column(name = "dados_adicionais")
    private String dadosAdicionais;
    @Column(name = "sts_usuario")
    private Character stsUsuario;
    
    @JoinColumn(name = "id_perfil", referencedColumnName = "id_perfil")
    @ManyToOne(fetch = FetchType.EAGER)  
    private CtrlPerfil idPerfil;

    public CtrlUsuario() {
    }

    public CtrlUsuario(String codUsuario) {
        this.codUsuario = codUsuario;
    }

    public String getCodUsuario() {
        return codUsuario;
    }

    public void setCodUsuario(String codUsuario) {
        this.codUsuario = codUsuario;
    }

    public String getNomUsuario() {
        return nomUsuario;
    }

    public void setNomUsuario(String nomUsuario) {
        this.nomUsuario = nomUsuario;
    }

    public String getDscEmail() {
        return dscEmail;
    }

    public void setDscEmail(String dscEmail) {
        this.dscEmail = dscEmail;
    }

    public String getTelFixoUsuario() {
        return telFixoUsuario;
    }

    public void setTelFixoUsuario(String telFixoUsuario) {
        this.telFixoUsuario = telFixoUsuario;
    }

    public String getTelMovUsuario() {
        return telMovUsuario;
    }

    public void setTelMovUsuario(String telMovUsuario) {
        this.telMovUsuario = telMovUsuario;
    }

    public String getCpfOuCnpj() {
        return cpfOuCnpj;
    }

    public void setCpfOuCnpj(String cpfOuCnpj) {
        this.cpfOuCnpj = cpfOuCnpj;
    }

    public String getDscPergunta() {
        return dscPergunta;
    }

    public void setDscPergunta(String dscPergunta) {
        this.dscPergunta = dscPergunta;
    }

    public String getDscResposta() {
        return dscResposta;
    }

    public void setDscResposta(String dscResposta) {
        this.dscResposta = dscResposta;
    }

    public String getDscThema() {
        return dscThema;
    }

    public void setDscThema(String dscThema) {
        this.dscThema = dscThema;
    }

    public String getPswUsuario() {
        return pswUsuario;
    }

    public void setPswUsuario(String pswUsuario) {
        this.pswUsuario = pswUsuario;
    }

    public String getDadosAdicionais() {
        return dadosAdicionais;
    }

    public void setDadosAdicionais(String dadosAdicionais) {
        this.dadosAdicionais = dadosAdicionais;
    }

    public CtrlPerfil getIdPerfil() {
        return idPerfil;
    }

    public void setIdPerfil(CtrlPerfil idPerfil) {
        this.idPerfil = idPerfil;
    }

    public Character getStsUsuario() {
        return stsUsuario;
    }

    public void setStsUsuario(Character stsUsuario) {
        this.stsUsuario = stsUsuario;
    }
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codUsuario != null ? codUsuario.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CtrlUsuario)) {
            return false;
        }
        CtrlUsuario other = (CtrlUsuario) object;
        if ((this.codUsuario == null && other.codUsuario != null) || (this.codUsuario != null && !this.codUsuario.equals(other.codUsuario))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.com.lm.entity.CtrlUsuario[ codUsuario=" + codUsuario + " ]";
    }
    
}
